package com.secxiot.provider.narcotic.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.secxiot.provider.system.vo.FileLogVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;

/**
 * 取药销毁
 */
@ApiModel
@Data
@ToString
public class NarcoticTakeDestroyVo {

    @ApiModelProperty(value = "取药销毁id", required = true)
    private Long takeDestroyId;

    @ApiModelProperty(value = "用户id", required = true)
    private Long patientUserId;

    @ApiModelProperty(value = "药品Id", required = true)
    private Long drugsId;

    @ApiModelProperty(value = "回收数量", required = true)
    private Integer recycleNum;

    @ApiModelProperty(value = "回收备注", required = true)
    private String recycleRemark;

    @ApiModelProperty(value = "患者资料Id", required = true)
    private Long patientInfoId;

    @ApiModelProperty(value = "医疗机构Id", required = true)
    private Long hospitalId;

    @ApiModelProperty(value = "申请用药记录Id", required = true)
    private Long patientDrugsRecordId;

    @ApiModelProperty(value = "医生药品记录Id", required = true)
    private Long doctorRecordId;

    @ApiModelProperty(value = "药师药品记录Id", required = true)
    private Long chemistRecordId;

    @ApiModelProperty(value = "取药设置时间", required = true)
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date takeMedicineSetTime;

    @ApiModelProperty(value = "取药确认时间", required = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date takeMedicineConfimTime;

    @ApiModelProperty(value = "取药附件", required = true)
    private String takeMedicineFile;

    @ApiModelProperty(value = "取药附件集合", required = true)
    private List<FileLogVo> takeMedicineFileList;

    @ApiModelProperty(value = "取药地址", required = true)
    private String takeMedicineAddress;

    @ApiModelProperty(value = "状态 0 未取药  1 已取药/未销毁  2 已销毁", required = true)
    private Integer state;

    @ApiModelProperty(value = "状态 0 无效, 1 有效")
    private Integer status;

    @ApiModelProperty(value = "发药人", required = true)
    private Long sendMedicineUserId;

    @ApiModelProperty(value = "发药人名称", required = false)
    private String sendMedicineUserName;

    @ApiModelProperty(value = "销毁药品时间", required = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date destroyTime;

    @ApiModelProperty(value = "药品批号", required = true)
    private String batchNo;

    @ApiModelProperty(value = "药品有效期", required = true)
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date validTime;

    @ApiModelProperty(value = "厂家ID", required = true)
    private Integer drugsFactoryId;

    @ApiModelProperty(value = "厂家名称", required = true)
    private String drugsFactoryName;

    @ApiModelProperty(value = "销毁药品附件", required = true)
    private String destroyFile;

    @ApiModelProperty(value = "销毁药品附件集合", required = true)
    private List<FileLogVo> destroyFileList;

    @ApiModelProperty(value = "药品名称", required = false)
    private String drugsName;

    @ApiModelProperty(value = "医院名称", required = false)
    private String hospitalName;

    @ApiModelProperty(value = "用户名称", required = false)
    private String userName;

    @ApiModelProperty(value = "创建时间", required = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
}
